In system virtualization, multiple virtual systems are created within a single physical system. The physical system can be a stand-alone computer, or alternatively, a computing system utilizing clustered computers and components. Virtual systems are independent operating environments that use virtual resources made up of logical divisions of physical resources such as processors, memory and input/output (I/O) adapters. This system virtualization is implemented through some managing functionality, typically hypervisor technology. Hypervisors, also called virtual machine managers (VMMs), use a thin layer of code in software or firmware to achieve fine-grained, dynamic resource sharing. Because hypervisors provide the greatest level of flexibility in how virtual resources are defined and managed, they are the primary technology for system virtualization.
Within a cloud computing environment there are typically multiple virtual machine (VM) operating system (OS) templates used for building a new VM image as method of rapid system deployment. VM templates may include different operating systems, versions, and architectures (e.g. 32 or 64 bit). The operating system files are managed using a package management system. A package management system is a collection of software tools to automate the process of installing, upgrading, configuring, and removing software packages for a computer's operating system in a consistent manner. The VM OS template is used as a starting point to install middleware and application software. Each application or software product may require prerequisite packages.